import { axiosInstance } from '@/http/axiosHelper'
import type { ApiResult } from '@/types/apiTypes'

// 养殖信息请求DTO
export interface SaveBreedingInfoRequestDto {
    breedingId?: string // 养殖编号，修改时必填
    productionBatch: string // 生产批次
    breed: string // 品种
    source: string // 来源
    feedingDays: string // 饲养天数
    brand: string // 品牌
    breederInCharge: string // 饲养负责人
    // outboundDate 字段在API中不存在
}

// 养殖信息响应DTO
export interface BreedingInfoResponseDto {
    breedingId: string // 养殖编号
    productionBatch: string // 生产批次
    breed: string // 品种
    source: string // 来源
    feedingDays: string // 饲养天数
    brand: string // 品牌
    breederInCharge: string // 饲养负责人
    createdTime: string // 创建时间
    lastModified: string // 最后修改时间
}

export const breedingService = {
    /**
     * 保存养殖信息（添加或修改）
     * @param data 养殖信息数据
     * @returns 
     */
    async saveBreedingInfo(data: SaveBreedingInfoRequestDto): Promise<ApiResult<string>> {
        try {
            const response = await axiosInstance.post('/Breeding/SaveBreedingInfo', data)
            return response.data
        } catch (error) {
            console.error('保存养殖信息失败:', error)
            throw error
        }
    },

    /**
     * 根据生产批次获取养殖信息
     * @param productionBatch 生产批次
     * @returns 
     */
    async getBreedingInfoByBatch(productionBatch: string): Promise<ApiResult<BreedingInfoResponseDto>> {
        try {
            const response = await axiosInstance.get(`/Breeding/GetBreedingInfoByBatch/${productionBatch}`)
            return response.data
        } catch (error) {
            console.error('获取养殖信息失败:', error)
            throw error
        }
    }
} 